<?php

namespace SinoPHP\BbdBoss\Api;

use InvalidArgumentException;
use Upfor\UpforPHP\Library\Math;

/**
 * IP变更
 *
 * Todo: 本接口尚未实现业务, 暂仅作为对外调试连通性
 *
 * Params:
 *      data:id         (integer)      IP对应ID
 *      data:oldIp      (string)       原IP
 *      data:newIp      (string)       新IP
 */
class ChangeIp extends ApiAbstract {

    public function v_1_0_0() {
        $params = $this->requestParams;

        $this->checkToken(); // 校验TOKEN

        if (empty($params['id'])) {
            throw new InvalidArgumentException('', 102001);
        }

        // oldIp校验
        if (empty($params['oldIp']) || !filter_var($params['oldIp'], FILTER_VALIDATE_IP)) {
            throw new InvalidArgumentException('', 102002);
        }

        // newIp校验
        if (empty($params['newIp']) || !filter_var($params['newIp'], FILTER_VALIDATE_IP)) {
            throw new InvalidArgumentException('', 102003);
        }

        // 新旧IP不可相同
        if ($params['newIp'] == $params['oldIp']) {
            throw new InvalidArgumentException('', 102004);
        }

        // Todo
        // 如果参数[id]与[oldIp]不匹配, 报错

        // 业务逻辑实现

        // 成功, 返回success; 失败, 返回状态码+错误提示
        $this->success();
    }

}
